#ifndef TEXTURE_PACK_H
#define TEXTURE_PACK_H

#include <QFileInfo>
#include <QList>
#include <QObject>
#include <QRect>
#include <QSettings>
#include <QString>
#include <QVariant>

#include "tile_sheet.h"

class PackMetadata;
class TexturePack : public QObject {
  Q_OBJECT
  Q_PROPERTY(QString name READ name)

 public:
  TexturePack() {}
  TexturePack(const TexturePack& other);
  TexturePack(const QString& name, const QFileInfo& archive, const TexturePack* minecraft_jar,
              const PackMetadata* metadata, QObject* parent = NULL);

  QString name() const;
  TileSheet* tileSheetNamed(const QString& name) const;

 private:
  QString name_;
  QList<TileSheet*> tile_sheets_;
  const TexturePack* minecraft_jar_;
  const PackMetadata* pack_metadata_;
};

#endif // TEXTURE_PACK_H
